/**
 * 折叠tokens
 * 将#和/之间的整合起来,作为下表为3的项
 */
export default function nextTokens(tokens) {

  // 结果数组
  var nestedTokens = [];
  // 栈顶
  var sections = [];
  // 收集器,指向同一个数组
  var collector = nestedTokens;
  for (let i = 0; i < tokens.length; i++) {
    let token = tokens[i];
    switch (token[0]) {
      case "#":
        // 往收集器中放入token
        collector.push(token);
        
        // 压栈,就是入栈
        sections.push(token);
        // 收集器要换人了
        // 给token添加下表为2的项，并且collector指向它
        collector = token[2] = [];
        break;
      case "/":
        // 出栈
        let section_pop = sections.pop();
        // 改变收集器为结构队尾
        collector=sections.length>0?sections[sections.length-1][2]:nestedTokens;

        break;
      default:
      collector.push(token)
    }
  }
  return nestedTokens
}